With the increasing sophistication of computer hardware and software graphic capabilities to display a representation of a three-dimensional object, there has come an increasing need for devices for entering into the computer three-dimensional spatial positional information. The motion of a rigid body in space has six degrees of freedom, three translational coordinates and three rotational coordinates with respect to a set of three mutually orthogonal axes. Therefore, to completely describe the position and orientation in space of an object to be displayed on a computer screen, six independent parameters must be supplied to the computer.
One approach for entering spatial positional data into a computer has been to use a traditional two-dimensional input device such as a mouse and specialized software to translate the two-dimensional inputs into three-dimensional representation This approach requires the user to indicate in some manner what the input data represents. Such indications are provided, for example, by icons displayed on the computer monitor which the user may choose by moving the cursor via movement of the mouse to the appropriate icon and pressing a button to choose that icon. For translational movement, this task is cumbersome, but not too difficult. However, the input of rotation coordinates in this manner is not intuitive and frequently poses great difficulty for the user.
A valuator or dial box is commonly used with CAD/CAM systems. This device normally provides eight knobs or dials. Six are used for entry of the six spatial parameters and two are used for additional one-dimensional input. Again, this is a cumbersome approach.
Another type of three-dimensional input device is a trackball which is capable of sensing translation in two dimensions or rotation about three orthogonal axes. Again, this device inputs only three coordinates. To distinguish between rotational data and translational data, the user must indicate in some manner the type of information being entered, as, for example, by choosing an appropriate icon, by pressing a button, or by pressing a key on a keyboard.
A further type of input device is "free flying" and incorporates electromagnetic sensors or accelerometers. This device is held by a user in the air and moved around through space, and, for example, six accelerometers within the device measure accelerations with respect to three orthogonal axes. The accelerations are integrated twice to calculate the translational and rotational coordinates. This device maps hand movement intuitively into movement of the cursor or object displayed on the computer monitor.
However, this device has several disadvantages. It is easily jiggled when the user pushes the buttons. Further, unless extremely accurate accelerometers are used, errors are introduced which grow larger as the integrations are performed. Additionally, it is difficult to separate translation from rotation when moving a free flying device, for example, to limit entry of translational data to a fixed plane; this separation may only be accomplished with specific software, not by the user's manipulation of the device. However, it is generally not necessary for the user to have translation and rotation coupled; generally, for CAD applications, it is more convenient to enter translation and rotation separately. Also, a typical mouse may be repositioned on the work surface simply by lifting it up and moving it to a new location, known as stroking; no movement is sensed during the stroking. Stroking is not possible with a free flying device. Instead, the user must indicate in some manner that the device is to be repositioned in space, generally by pushing a button to indicate that no movements are to be sensed.
Another known device is a rigid sphere containing strain gauges which the user pushes and pulls in any direction to provide three-dimensional translation and orientation. This device is not integrated with a two-dimensional pointing device and requires a large work surface with extra platform and power supply. The user's hand does not actually move and, therefore, the user must rely on motions of the screen object for visual feedback. The inputs must be integrated in order to get velocities or displacements. Thus, the user needs some initial training to get accustomed to the use of this device.